#include"CaLexer.hpp"
#include"CalParser.hpp"
#include<iostream>
#include<string>
class VSBase{
    public:
        static void sout(){
            std::cout<<"base"<<std::endl;
        }
        // static void sout();
};
class VSDeriv_0:public VSBase{
    public:
        static void sout(){
            std::cout<<"derived_0"<<std::endl;
        }
};
void errTest(){
    // std::string s();
    const char*content="1234";
    int i=0;
    std::cerr<<"Col:"<<i<<":\033[22;31;40m error:\033[0m"
            <<" \033[22;31;40m"<<content[i]<<"\033[0m"<<std::endl;
}
bool isDelim(char c,bool comma=true){
    return ! (std::isdigit(c)||(comma&&c=='.'));
}
void cl_0(){
    expr_lexer el("3+2^3-sin 32|");
    try{el.execute();}catch(...){}
    el.show();
    expr_lexer ex("3-1%9+9^2");
    ex.execute();
    ex.show();
}
void fnTest(){
    // std::function<const int&(const int&,const int&)> fn;
    std::function<int(int,int)> fn;
    fn=std::max<int>;
    std::cout<<fn(1,3);
}
int main(){
    // VSDeriv_0::sout();
    // VSBase::sout();
    // std::cout<<std::string({'1'});
    // std::cout<<std::string({'o'});
    // std::cout<<isDelim('.');
    // std::cout<<isDelim('.',false);
    cl_0();
    int i=assign;
    std::cout<<i;
    // fnTest();
    return 0;
}